package com.doctcloud.hisinfo.histable.document;

import com.doctcloud.common.core.annotation.Excel;
import com.doctcloud.common.core.annotation.TableDesc;
import lombok.*;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.List;

import static com.doctcloud.common.core.utils.StringUtils.trim;

@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(of = {"id"})
@ToString
@Document(collection = "table_info_index")
@TableDesc("表结构信息")
public class TableInfoIndexDo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id // 使用 @Id 注解将这个字段映射到 MongoDB 的 _id
    @Setter(AccessLevel.NONE) // 关键改动：禁止 Lombok 生成 setId 方法
    private String id; // 这个字段将存储 tableName 的值
    /** 表英文名 */
    @Field("table_name")
    private String tableName;
    /** 表中文名 */
    @Field("table_cname")
    private String tableCName;
    /** 表结构 */
    @Field("table_content")
    private List<TableColumnInfoDo> tableColumnInfos;
    /** 说明 */
    @Field("table_note")
    private String notes;
    /** 注意 */
    @Field("table_attn")
    private String attn;

    public void setTableName(String tableName) {
        this.id = tableName;
        this.tableName = trim(tableName);
    }

    public void setNotes(String notes) {
        this.notes = trim(notes);
    }

    public void setAttn(String attn) {
        this.attn = trim(attn);
    }
}
